package com.scunewscreeper.service.websocket;

import com.corundumstudio.socketio.SocketIOClient;

import java.util.List;

/**
 * \* Created with IntelliJ IDEA.
 * \* User: 大龙
 * \* Date: 2021/11/6
 * \* Time: 20:00
 * \* Description: 通信模块service
 * \
 */
public interface WebSocketService {
    /**
     *  启动服务器websocket服务器时会自动调用一次
     */
    void autoStart();

    /**
     *  检查Token
     */
    boolean checkToken(String token);

    /**
     *  获取客户端Token
     */
    String getClientKey(SocketIOClient cilent, String key);

    /**
     *  一个连接断开时被调用一次
     */
    void onDestroy();

    /**
     *  发送数据
     */
    int sendMsg(Object demo);

    /**
     * 向指定用户发信息
     * @param demo
     * @param receiverId
     * @return int
     */
    int sendMsg(Object demo, String receiverId,String event);

    /**
     * 向指定用户列表发信息
     * @param demo
     * @param receiverList
     * @return int
     */
    int sendMsg(Object demo, List<String> receiverList);

    /***
     * 检查用户是否在线
     * @param userid
     * @return boolean
     */
    boolean IsUserOnline(String userid);

    /**
     * 把离线用户的消息插入消息队列
     * @param jsonMessage json格式的消息
     * @return void
     */
    void InsertMessageLine(String userId,String jsonMessage);
}
